0 REM 6.13.18 - IDIOT COMPILER RELOCATION IDENTIFIER
1 CLEAR:HOME:PRINT "COMPILER RELOCATION IDENTIFIER":PRINT
2 PRINT "ORIGINAL ADR: 30000":OA=30000
3 INPUT "MODIFIED ADR: ";OB
4 OC=OB-OA

11 DIM D$(250):D=0:ON ERR GOTO 20
12 PRINT CHR$(4);"OPEN PROGRAM.LISTING"
13 PRINT CHR$(4);"READ PROGRAM.LISTING"
14 D=D+1:INPUT D$(D):GOTO 14
15 PRINT CHR$(4);"CLOSE"


20 FOR A=1 TO D-1
21 B$=RIGHT$(D$(A),5):B=VAL(B$):B=B+OC:B$=STR$(B)
22 L=LEN(D$(A)):D$(A)=LEFT$(D$(A),L-5):D$(A)=D$(A)+B$
23 NEXT

30 PRINT CHR$(4);"OPEN PROGRAM.LISTING.X":PRINT CHR$(4);"CLOSE"
31 PRINT CHR$(4);"DELETE PROGRAM.LISTING.X"
35 PRINT CHR$(4);"OPEN PROGRAM.LISTING.X"
36 PRINT CHR$(4);"WRITE PROGRAM.LISTING.X"
37 FOR A=1 TO D-1:PRINT D$(A):NEXT
38 PRINT CHR$(4);"CLOSE"
39 PRINT "*** PROGRAM LISTING MODIFIED  ***"

40 D=0:ON ERR GOTO 45
41 PRINT CHR$(4);"OPEN VARIABLES"
42 PRINT CHR$(4);"READ VARIABLES"
43 D=D+1:INPUT D$(D):GOTO 43
45 PRINT CHR$(4);"CLOSE"

49 ON ERR GOTO 75
50 A=0
51 A=A+2:IF A>D GOTO 60
52 B$=D$(A):B=VAL(B$):B=B+OC:D$(A)=STR$(B):GOTO 51

60 PRINT CHR$(4);"OPEN VARIABLES.X":PRINT CHR$(4);"CLOSE"
61 PRINT CHR$(4);"DELETE VARIABLES.X"
62 PRINT CHR$(4);"OPEN VARIABLES.X"
63 PRINT CHR$(4);"WRITE VARIABLES.X"
64 FOR A=1 TO D:PRINT D$(A):NEXT
65 PRINT CHR$(4);"CLOSE"
70 PRINT "*** VARIABLE LISTING MODIFIED ***":END
75 PRINT "ERR":STOP
